package com.kk.utils;

import com.google.common.hash.BloomFilter;
import com.google.common.hash.Funnels;

import java.nio.charset.Charset;

/**
 * the class of advance
 *
 * 使用 Google 开源的 Guava 中自带的布隆过滤器
 *
 * <p>
 * .
 *
 * @author little_lunatic
 * @date 2024-07-22
 */
public class GuavaBloomTest {

    public static void main(String[] args) {

        // 创建一个最多存放 1500 个整数的布隆过滤器，并且我们可以容忍误判的概率为百分之一
        BloomFilter<Integer> bloomFilter = BloomFilter.create(Funnels.integerFunnel(), 1500, 0.01);
//        bloomFilter.put(12);

        for (int i = 0; i < 1000; i++) {
            bloomFilter.put(i);
            boolean b = bloomFilter.mightContain(i);
            if (b) {
//                System.out.println(i + " 可能存在于布隆过滤器中");
            }
        }

        long b = bloomFilter.approximateElementCount();
        System.out.println(b);
    }
}
